Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(regular_expression)!: Support ES2025 Duplicated named capture groups #6847

Merged
merged 1 commit into from
Oct 25, 2024

Conversation

leaysgur
Copy link
Contributor

@leaysgur leaysgur commented Oct 24, 2024

Closes #6358

@preyneyv I know you've been working on this problem.

This is an implementation that has been dormant on my local for a while.

  • All tests are passing
  • However, the approach is simple but not general, so there might be some edge cases that were missed
  • There's also room for improvement in terms of performance

For these reasons, it was marked as WIP for me.

I believe the test cases and other parts are usable, so feel free to fork and replace them with your implementation if you'd like.

Copy link

graphite-app bot commented Oct 24, 2024

Your org has enabled the Graphite merge queue for merging into main

Add the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix.

You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link.

@preyneyv
Copy link

Awesome, thank you!

Copy link

codspeed-hq bot commented Oct 25, 2024

CodSpeed Performance Report

Merging #6847 will not alter performance

Comparing issue-6358 (90c786c) with main (f49b3e2)

Summary

✅ 30 untouched benchmarks

Copy link
Member

@Boshen Boshen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NICE!

@Boshen
Copy link
Member

Boshen commented Oct 25, 2024

Is this in a mergable state?

@leaysgur
Copy link
Contributor Author

Yes, mergable.

@preyneyv feel free to submit your work as an enhancement after merging. 😉

@preyneyv
Copy link

Sounds good! I think I solved the general problem on paper, should hopefully have smth up in a bit

@Boshen Boshen added the 0-merge Merge with Graphite Merge Queue label Oct 25, 2024
Copy link
Member

Boshen commented Oct 25, 2024

Merge activity

  • Oct 24, 10:13 PM EDT: The merge label '0-merge' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.
  • Oct 24, 10:13 PM EDT: A user added this pull request to the Graphite merge queue.
  • Oct 24, 10:18 PM EDT: A user merged this pull request with the Graphite merge queue.

…oups (#6847)

Closes #6358

@preyneyv I know you've been working on this problem.

This is an implementation that has been dormant on my local for a while.

- All tests are passing
- However, the approach is simple but not general, so there might be some edge cases that were missed
- There's also room for improvement in terms of performance

For these reasons, it was marked as WIP for me.

I believe the test cases and other parts are usable, so feel free to fork and replace them with your implementation if you'd like.
@graphite-app graphite-app bot merged commit 90c786c into main Oct 25, 2024
27 checks passed
@graphite-app graphite-app bot deleted the issue-6358 branch October 25, 2024 02:18
Boshen added a commit that referenced this pull request Oct 26, 2024
## [0.34.0] - 2024-10-26

- 4618aa2 transformer: [**BREAKING**] Rename `TransformerOptions::react`
to `jsx` (#6888) (Boshen)

- 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated
named capture groups (#6847) (leaysgur)

- 67a7bde napi/parser: [**BREAKING**] Add typings to napi/parser (#6796)
(ottomated)

### Features

- 1145341 ast_tools: Output typescript to a separate package (#6755)
(ottomated)
- 4429754 ecmascript: Constant eval `null` to number (#6879) (Boshen)
- fd57e00 ecmascript: Add abstract_relational_comparison to dce (#6846)
(Boshen)
- 8bcaf59 minifier: Late peeophole optimization (#6882) (Boshen)
- 860cbca minifier: Implement folding simple arrow fns (#6875) (camc314)
- c26020e minifier: Implement folding String.prototype.replaceAll
(#6871) (camc314)
- 50744f3 minifier: Implement folding String.prototype.replace (#6870)
(camc314)
- fccf82e minifier: Implement folding `substring` string fns (#6869)
(camc314)
- e6a5a1b minifier: Implement folding `charCodeAt` string fns (#6475)
(camc314)
- 0d0bb17 transformer: Complete the async-to-generator plugin (#6658)
(Dunqing)
- 419343b traverse: Implement `GetAddress` for `Ancestor` (#6877)
(overlookmotel)

### Bug Fixes

- a47c70e minifier: Fix remaining runtime bugs (#6855) (Boshen)
- 686727f minifier: Reference read has side effect (#6851) (Boshen)
- c658d93 minifier: Keep template literals with expressions (#6849)
(Boshen)
- 4dc5e51 transformer: Only run typescript plugin for typescript source
(#6889) (Boshen)
- 076f5c3 transformer/typescript: Retain ExportNamedDeclaration without
specifiers and declaration (#6848) (Dunqing)
- b075982 types: Change @oxc/types package name (#6874) (ottomated)

### Documentation

- 6eeb0e6 ast: Mention typescript-eslint, field ordering and shape
(#6863) (Boshen)
- 99e3b32 napi: Remove JSON.parse from example (#6836) (ottomated)

### Refactor

- adb5039 allocator: Add `impl GetAddress for Address` (#6891)
(overlookmotel)
- 3e7507f ast_tools: Reduce macro usage (#6895) (overlookmotel)
- 423d54c rust: Remove the annoying `clippy::wildcard_imports` (#6860)
(Boshen)
- 2d95009 transformer: Implement `Debug` on `StatementInjector` internal
types (#6886) (overlookmotel)
- c383c34 transformer: Make `StatementInjectorStore` methods generic
over `GetAddress` (#6885) (overlookmotel)
- 1f29523 transformer: Rename ReactJsx to Jsx (#6883) (Boshen)
- 333b758 transformer: `StatementInjectorStore` methods take
`&Statement` as target (#6858) (overlookmotel)
- c19996c transformer: Add `StatementInjectorStore::insert_many_before`
method (#6857) (overlookmotel)
- 7339dde transformer: `StatementInjectorStore::insert_many_after` take
an iterator (#6856) (overlookmotel)
- 4348eae transformer/typescript: Re-order visitor methods (#6864)
(overlookmotel)
- 3a56d59 transformer/typescript: Insert assignments after super by
`StatementInjector` (#6654) (Dunqing)
- a366fae traverse: Rename
`TraverseScoping::generate_binding_in_current_scope` (#6832)
(overlookmotel)
- 3b99fe6 traverse: Move `generate_binding` to `TraverseScoping` (#6831)
(overlookmotel)
- 60f487a traverse: `TraverseCtx::generate_binding` take an `Atom`
(#6830) (overlookmotel)

### Styling

- 262b2ed ast: Move crate doc comment to top of file (#6890)
(overlookmotel)

---------

Co-authored-by: Boshen <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Boshen added a commit that referenced this pull request Oct 26, 2024
## [0.10.3] - 2024-10-26

- 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated
named capture groups (#6847) (leaysgur)

- 8032813 regular_expression: [**BREAKING**] Migrate to new regexp
parser API (#6741) (leaysgur)

### Features

- a73c5af linter: Add fixer for `jsx-a11y/no-access-key` rule (#6781)
(Tapan Prakash)
- 2aa763c linter: Warn unmatched rule names (#6782) (Tapan Prakash)
- 0acca58 linter: Support `--print-config all` to print config file for
project (#6579) (mysteryven)

### Bug Fixes

- f49b3e2 linter: `react/iframe-missing-sandbox` ignores vanilla JS APIs
(#6872) (DonIsaac)
- 54a5032 linter: Correct false positive in `no-duplicates` (#6748)
(dalaoshu)
- a47c70e minifier: Fix remaining runtime bugs (#6855) (Boshen)

### Documentation

- 3923e63 linter: Add schema to config examples (#6838) (Dmitry
Zakharov)

### Refactor

- a148023 linter: Dereference IDs as soon as possible (#6821)
(overlookmotel)
- 423d54c rust: Remove the annoying `clippy::wildcard_imports` (#6860)
(Boshen)

---------

Co-authored-by: Boshen <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Orenbek pushed a commit to Orenbek/oxc that referenced this pull request Oct 28, 2024
…oups (oxc-project#6847)

Closes oxc-project#6358

@preyneyv I know you've been working on this problem.

This is an implementation that has been dormant on my local for a while.

- All tests are passing
- However, the approach is simple but not general, so there might be some edge cases that were missed
- There's also room for improvement in terms of performance

For these reasons, it was marked as WIP for me.

I believe the test cases and other parts are usable, so feel free to fork and replace them with your implementation if you'd like.
Orenbek pushed a commit to Orenbek/oxc that referenced this pull request Oct 28, 2024
## [0.34.0] - 2024-10-26

- 4618aa2 transformer: [**BREAKING**] Rename `TransformerOptions::react`
to `jsx` (oxc-project#6888) (Boshen)

- 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated
named capture groups (oxc-project#6847) (leaysgur)

- 67a7bde napi/parser: [**BREAKING**] Add typings to napi/parser (oxc-project#6796)
(ottomated)

### Features

- 1145341 ast_tools: Output typescript to a separate package (oxc-project#6755)
(ottomated)
- 4429754 ecmascript: Constant eval `null` to number (oxc-project#6879) (Boshen)
- fd57e00 ecmascript: Add abstract_relational_comparison to dce (oxc-project#6846)
(Boshen)
- 8bcaf59 minifier: Late peeophole optimization (oxc-project#6882) (Boshen)
- 860cbca minifier: Implement folding simple arrow fns (oxc-project#6875) (camc314)
- c26020e minifier: Implement folding String.prototype.replaceAll
(oxc-project#6871) (camc314)
- 50744f3 minifier: Implement folding String.prototype.replace (oxc-project#6870)
(camc314)
- fccf82e minifier: Implement folding `substring` string fns (oxc-project#6869)
(camc314)
- e6a5a1b minifier: Implement folding `charCodeAt` string fns (oxc-project#6475)
(camc314)
- 0d0bb17 transformer: Complete the async-to-generator plugin (oxc-project#6658)
(Dunqing)
- 419343b traverse: Implement `GetAddress` for `Ancestor` (oxc-project#6877)
(overlookmotel)

### Bug Fixes

- a47c70e minifier: Fix remaining runtime bugs (oxc-project#6855) (Boshen)
- 686727f minifier: Reference read has side effect (oxc-project#6851) (Boshen)
- c658d93 minifier: Keep template literals with expressions (oxc-project#6849)
(Boshen)
- 4dc5e51 transformer: Only run typescript plugin for typescript source
(oxc-project#6889) (Boshen)
- 076f5c3 transformer/typescript: Retain ExportNamedDeclaration without
specifiers and declaration (oxc-project#6848) (Dunqing)
- b075982 types: Change @oxc/types package name (oxc-project#6874) (ottomated)

### Documentation

- 6eeb0e6 ast: Mention typescript-eslint, field ordering and shape
(oxc-project#6863) (Boshen)
- 99e3b32 napi: Remove JSON.parse from example (oxc-project#6836) (ottomated)

### Refactor

- adb5039 allocator: Add `impl GetAddress for Address` (oxc-project#6891)
(overlookmotel)
- 3e7507f ast_tools: Reduce macro usage (oxc-project#6895) (overlookmotel)
- 423d54c rust: Remove the annoying `clippy::wildcard_imports` (oxc-project#6860)
(Boshen)
- 2d95009 transformer: Implement `Debug` on `StatementInjector` internal
types (oxc-project#6886) (overlookmotel)
- c383c34 transformer: Make `StatementInjectorStore` methods generic
over `GetAddress` (oxc-project#6885) (overlookmotel)
- 1f29523 transformer: Rename ReactJsx to Jsx (oxc-project#6883) (Boshen)
- 333b758 transformer: `StatementInjectorStore` methods take
`&Statement` as target (oxc-project#6858) (overlookmotel)
- c19996c transformer: Add `StatementInjectorStore::insert_many_before`
method (oxc-project#6857) (overlookmotel)
- 7339dde transformer: `StatementInjectorStore::insert_many_after` take
an iterator (oxc-project#6856) (overlookmotel)
- 4348eae transformer/typescript: Re-order visitor methods (oxc-project#6864)
(overlookmotel)
- 3a56d59 transformer/typescript: Insert assignments after super by
`StatementInjector` (oxc-project#6654) (Dunqing)
- a366fae traverse: Rename
`TraverseScoping::generate_binding_in_current_scope` (oxc-project#6832)
(overlookmotel)
- 3b99fe6 traverse: Move `generate_binding` to `TraverseScoping` (oxc-project#6831)
(overlookmotel)
- 60f487a traverse: `TraverseCtx::generate_binding` take an `Atom`
(oxc-project#6830) (overlookmotel)

### Styling

- 262b2ed ast: Move crate doc comment to top of file (oxc-project#6890)
(overlookmotel)

---------

Co-authored-by: Boshen <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Orenbek pushed a commit to Orenbek/oxc that referenced this pull request Oct 28, 2024
## [0.10.3] - 2024-10-26

- 90c786c regular_expression: [**BREAKING**] Support ES2025 Duplicated
named capture groups (oxc-project#6847) (leaysgur)

- 8032813 regular_expression: [**BREAKING**] Migrate to new regexp
parser API (oxc-project#6741) (leaysgur)

### Features

- a73c5af linter: Add fixer for `jsx-a11y/no-access-key` rule (oxc-project#6781)
(Tapan Prakash)
- 2aa763c linter: Warn unmatched rule names (oxc-project#6782) (Tapan Prakash)
- 0acca58 linter: Support `--print-config all` to print config file for
project (oxc-project#6579) (mysteryven)

### Bug Fixes

- f49b3e2 linter: `react/iframe-missing-sandbox` ignores vanilla JS APIs
(oxc-project#6872) (DonIsaac)
- 54a5032 linter: Correct false positive in `no-duplicates` (oxc-project#6748)
(dalaoshu)
- a47c70e minifier: Fix remaining runtime bugs (oxc-project#6855) (Boshen)

### Documentation

- 3923e63 linter: Add schema to config examples (oxc-project#6838) (Dmitry
Zakharov)

### Refactor

- a148023 linter: Dereference IDs as soon as possible (oxc-project#6821)
(overlookmotel)
- 423d54c rust: Remove the annoying `clippy::wildcard_imports` (oxc-project#6860)
(Boshen)

---------

Co-authored-by: Boshen <[email protected]>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
0-merge Merge with Graphite Merge Queue A-linter Area - Linter C-enhancement Category - New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

regular_expression: Improve ES2025 proposal-duplicate-named-capturing-groups logic
3 participants